﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace oneDimensionalArray
{
    class Program
    {
        static void Main(string[] args)
        {
            //int[] intArray = new int[5];
            //Console.WriteLine("Введите элементы массива");
            //Console.WriteLine(intArray.Length);
            //int max = Int32.MinValue;
            //for (int i = 0; i <= 4; i++)
            //{
            //    Console.Write("[{0}]: ", i);
            //    intArray[i] = Int32.Parse(Console.ReadLine());

            //    if (intArray[i] > max)
            //    {
            //        max = intArray[i];
            //    }
            //}
            //foreach (int number in intArray)
            //{
            //    Console.WriteLine("Элементы массива : {0}", number);
            //}
            //Console.WriteLine("Максимальное значение массива : {0}", max);
            //Console.Read();



            //Console.WriteLine("Введите размер массива: ");
            //int size = Int32.Parse(Console.ReadLine());
            //int[] workArray = FillArrayFromConsole(size);

            //Console.WriteLine("Введенные элементы массива: ");
            //foreach (var item in workArray)
            //{
            //    Console.WriteLine(item);           
            //}
            //int minValue = workArray.Min<int>();
            //Console.WriteLine("Минимальное значение массива : {0}", minValue);
            //int minPlusFive = minValue + 5;
            //int counter = 0;
            //for (int i = 0; i < size; i++)
            //{
            //    if (workArray[i] == minPlusFive)
            //    {
            //        counter++;
            //    }
            //}
            //Console.WriteLine("Количество элементов массива, отличающихся от минимального значения на 5 : {0}", counter);
            //Console.Read();



            //Console.WriteLine("Введите размер массива: ");
            //int sizeTwo = Int32.Parse(Console.ReadLine());
            //int[] workArrayTwo = FillArrayFromConsole(sizeTwo);

            //Console.WriteLine("Введенные элементы массива: ");
            //foreach (var item in workArrayTwo)
            //{
            //    Console.WriteLine(item);
            //}
            //int maxValue = workArrayTwo.Max<int>();
            //Console.WriteLine("Максимальное значение массива : {0}", maxValue);
            //int indexOfMaxValue = Array.IndexOf(workArrayTwo, maxValue);
            //Console.WriteLine("Максимальное значение массива находится на позиции: {0}", indexOfMaxValue);

            //int summ = 0;
            //if (indexOfMaxValue != 0)
            //{
            //    for (int i = 0; i < indexOfMaxValue; i++)
            //    {
            //        summ = workArrayTwo[i] + summ;
            //    }
            //}
            //Console.WriteLine("Сумма элементов расположенных до максимального элемента массива равна : {0}", summ);
            //Console.Read();



            //int[] intArrayFourthTask = new int[8];
            //Console.WriteLine("Введите элементы массива");
            //Console.WriteLine(intArrayFourthTask.Length);
            //for (int i = 0; i < 8; i++)
            //{
            //    Console.Write("[{0}]: ", i);
            //    intArrayFourthTask[i] = Int32.Parse(Console.ReadLine());
            //}
            //foreach (int number in intArrayFourthTask)
            //{
            //    Console.WriteLine("Элементы массива : {0}", number);
            //}
            //int indexOfNegativeNumber = 0; 
            //for (int i = 0; i < 8; i++)
            //{
            //    if (intArrayFourthTask[i] < 0)
            //    {
            //        indexOfNegativeNumber = Array.IndexOf(intArrayFourthTask, intArrayFourthTask[i]);
            //    }
            //} 
            //if (indexOfNegativeNumber == 0)
            //{
            //    Console.WriteLine("Отрицательных чисел в массиве не найдено");
            //}
            //else
            //{
            //    Console.WriteLine("Значение и номер последнего отрицательного элемента массива:{0}, {1}", intArrayFourthTask[indexOfNegativeNumber], indexOfNegativeNumber);

            //}
            //Console.Read();



            Console.WriteLine("Введите размер массива: ");
            int sizeTaskFive = Int32.Parse(Console.ReadLine());
            int[] workArrayTaskFive = FillArrayFromConsole(sizeTaskFive);

            Console.WriteLine("Введенные элементы массива: ");
            foreach (var item in workArrayTaskFive)
            {
                Console.WriteLine(item);
            }
            int maxValueTaskFive = workArrayTaskFive.Max<int>();
            Console.WriteLine("Максимальное значение массива : {0}", maxValueTaskFive);
            int indexOfMaxValueTaskFive = Array.IndexOf(workArrayTaskFive, maxValueTaskFive);
            Console.WriteLine("Максимальное значение массива находится на позиции: {0}", indexOfMaxValueTaskFive);
            int[] newWorkArrayTaskFive = new int[sizeTaskFive];
            int averageNumber = 0;
            int summNumber = 0;
            for (int i = 0; i < indexOfMaxValueTaskFive; i++)
            {
                summNumber = summNumber + workArrayTaskFive[i];
            }
            averageNumber = summNumber / indexOfMaxValueTaskFive;
            Console.WriteLine("Среднее арифметическое значение всех элементов ДО максимального в массиве: {0}", averageNumber);
            for (int i = ++indexOfMaxValueTaskFive; i < sizeTaskFive; i++)
            {
                workArrayTaskFive.SetValue(averageNumber, i);
            }
            foreach (var item in workArrayTaskFive)
            {
                Console.WriteLine(item);
            }
            Console.Read();
        }














        static int[] FillArrayFromConsole(int arraySize)
        {
            int[] array = new int[arraySize];
            for (int i = 0; i < arraySize; i++)
            {
                Console.Write("[{0}]: ", i);
                array[i] = Int32.Parse(Console.ReadLine());
            }
            return array;
        }





    }
}


//int maxValue = intArray.Max<int>();
//Console.WriteLine("Максимальное значение массива : {0}", maxValue);
//Console.Read();          




